今天要打的是 Reveal Lab,這題的分類是 Endpoint Forensics,難度為 easy。
您是一家金融機構的取證調查員,您的 SIEM 系統在一台可存取敏感財務資料的工作站上標記了異常活動。由於懷疑存在資料洩露,您收到了受感染機器的記憶體轉儲。您的任務是分析記憶體中是否有入侵跡象,追蹤異常的來源,並評估其影響範圍,以有效控制事件。
volatility 3
vol -f 192-Reveal.dmp windows.malfind
malfind 的輸出中其他都是系統核心進程,但有四個 powershell.exe 的記憶體區域都為 PAGE_EXECUTE_READWRITE,擁有讀寫+執行權限,正常情況下不會有這種情況,這點很可疑。
另一點是 malfind 會輸出可疑進程中的可疑 assembly。從最底下那個 powershell.exe 的 asm 中可以看到它會跳轉到一個他設定的記憶體位址,這也非常可疑。
vol -f 192-Reveal.dmp windows.cmdline
用 cmdline 插件看到它建立了一個隱藏的對外連線和執行了一個遠端目錄下的 DLL,是典型的第一階段惡意軟體的特徵。
第一階段惡意軟體 (dropper) 它的主要任務是從遠端伺服器下載第二階段的惡意軟體,它會用各種方法來躲避防毒軟體偵測,所以丟到 VirusTotal 上有可能會掃不出它是病毒,這也是他的目標之一。
Ans:powershell.exe
vol -f 192-Reveal.dmp windows.pstree
Ans:4120
我們從 pstree 或 cmd 的輸出中可以看到 powershell.exe 連到遠端伺服器,然後使用 rundll32 運行了遠端伺服器目錄下的 3435.dll。
這裡明顯可以看出 powershell.exe 是一階惡意軟體,並且成功運行了 3435.dll 這個二階惡意軟體
Ans:3435.dll
一樣從 pstree 或 cmd 的輸出中就能看到。
Ans:davwwwroot
做到這裡你一定想問什麼是 MITRE ATT&CK?
它就像一本駭客行為百科全書,詳細地列出了攻擊者在各個入侵階段的各種行為模式和手法。
直接 Google MITRE ATT&CK,進入首頁右上角 Techniques 下的 Enterprise 頁面
搜尋 rundll32,搜尋到第二個結果描述和我們前面看到的惡意行為如出一轍。
可以看到他是T1218.011。(MITRE ATT&CK完整使用方法這邊就不說了,有興趣學得自己上網查)
Ans:T1218.011
這裡我們要用到 getsids 這個插件,它會列出跟進程有關的 SID,讓我們能夠識別每個進程的使用者帳戶、群組和權限。
那什麼是 SID 呢?
SID 是 Windows 中用來識別使用者、群組等等的唯一代碼,可以把它想像成身分證號碼,每個 SID 都代表一個特定的帳戶,系統透過這個 SID 就能知道使用者的身分、權限等等。
vol -f 192-Reveal.dmp windows.getsids | grep 3692
這條指令用 grep 從 getsids 的輸出中搜尋 3692 (powershell.exe 的 PID)。
上圖中我能們看到,除了幾個群組名,還有一個 username Elon。
Ans:Elon
既然 powershell.exe 是一階 payload 掃不出來,3435.dll 又是在共享資料夾中執行的,我們對這個惡意軟體的資訊現在只剩他的 IP 了。把 IP 丟到 VirusTotal 上看看
可以看到這樣一段敘述 This IPV4 is used by STRELASTEALER…。
StrelaStealer 是一種針對性強、隱匿性高的惡意軟體,主要被用於竊取電子郵件帳戶,可能進而引發嚴重的個人資料外洩和財產損失風險。
Ans:StrelaStealer
我們今天用前兩天學到的 volatility 插件成功辨識出偽裝成正常 PowerShell 的惡意軟體,還原從一階 dropper 到二階惡意軟體的完整流程,並利用 IP 定位惡意軟體的家族。同時我們學到了如何透過 getsids插件找出被感染的使用者帳號和從惡意軟體的攻擊手法找出他的MITRE ATT&CK 子技術。
明天我們將進入 Medium 難度的更複雜的攻擊場景分析。